<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>作业</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        span {
            width: 20px;
            height: 20px;
            display: inline-block;
        }
    </style>
</head>

<body>
    <script>
        // //1.斐波那数列：1，1，2，3，5，8，13，21，34，55，89... 求第n个数
        // function datas(n) {
        //     let f = 1, s = 1, t
        //     for (let i = 0; i < n - 2; i++) {
        //         t = f + s
        //         f = s
        //         s = t
        //     }
        //     return t
        // }
        // let r = datas(10)
        // console.log(r);








        // // 2.判断一个数组是否对称
        // function fun(datas) {
        //     for (let i = 0; i < datas.length / 2; i++) {
        //         if (datas[i] != datas[datas.length - i - 1]) {
        //             return "不对称"
        //         }
        //     }
        //     return "对称"
        // }
        // let r = fun([1, 2, 3, 4, 3, 2, 1])
        // console.log(r);








        // // 3.删除指定数组中所有的奇数 [1,2,2,3,4,5,5,6,7,8,9]结果 [2,4,6,8]
        // // 法1
        // function fun(datas) {
        //     for (let e = datas.length - 1; e >= 0; e--) {
        //         if (datas[e] % 2 != 0) {
        //             datas.splice(e, 1)
        //         }
        //     }
        //     return [...new Set(datas)]
        // }
        // let r = fun([1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9])
        // console.log(r);


        // // 法2
        // function fun(datas) {
        //     let newArr = [];
        //     for (let i = 0; i < datas.length; i++) {
        //         if (datas[i] % 2 === 0) {
        //             newArr.push(datas[i]);
        //         }
        //     }
        //     return newArr;
        // }
        // let r = fun([1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]);
        // console.log(r);


        // // 法3
        // let arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]
        // for (let i = 0; i < arr.length; i++) {
        //     if ((arr)[i] % 2) {
        //         arr.splice(i, 1)
        //         i--
        //     }
        // }
        // console.log(arr);   //  2, 2, 4, 6, 8


        // // 法4
        // let arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9]
        // for (let i = arr.length - 1; i >= 0; i--) {
        //     if (arr[i] % 2) {
        //         arr.splice(i, 1)
        //     }
        // }
        // console.log(arr);   //  2, 2, 4, 6, 8




        // // 法5
        // function deleteOdd(arr) {
        //     for (let i = arr.length - 1; i >= 0; i--) {
        //         if (arr[i] % 2) {
        //             arr.splice(i, 1)
        //         }
        //     }
        //     return arr
        // }
        // console.log(deleteOdd([1, 2, 2, 3, 4, 5, 6, 7, 8, 9]))







        // // 4.随机10个不同的位于10-30之间的数放入数组，总共随机了多少次
        // function fun(n) {
        //     let count = 0
        //     let datas = []
        //     while (datas.length < n) {
        //         let data = Math.floor(Math.random() * (30 - 10 + 1)) + 10
        //         count++
        //         if (!datas.includes(data)) {
        //             datas.push(data)
        //         }
        //     }
        //     return count
        // }
        // let r = fun(10)
        // console.log(r);








        // // 5.统计一个字符串中每个字符出现的次数
        // function fun(value) {
        //     let datas = {};
        //     for (let i = 0; i < value.length; i++) {
        //         if (value[i] in datas) {
        //             datas[value[i]]++;
        //         }
        //         else {
        //             datas[value[i]] = 1;
        //         }
        //     }
        //     return datas;
        // }
        // let r = fun("asaade");
        // console.log(r);








        // // 6.找出1000以内所有的完数（所有因子之和等于本身）
        // function fun() {
        //     for (let i = 2; i <= 1000; i++) {
        //         let total = 0
        //         for (let j = 1; j < i; j++) {
        //             if (i % j == 0) {
        //                 total += j
        //             }
        //         }
        //         if (total == i) {
        //             console.log(i);
        //         }
        //     }
        // }
        // fun()







        // // 7.使用for循环控制9行9列各种三角形的展示
        // function fun(t) {
        //     for (let i = 0; i < 9; i++) {
        //         for (let j = 0; j < 9; j++) {
        //             if (t(i, j)) {
        //                 document.write("<span>0</span>");
        //             }
        //             else {
        //                 document.write("<span> </span>");
        //             }
        //         }
        //         document.write("<br>");
        //     }
        // }

        // // 上
        // function t1(i, j) {
        //     return i + j <= 8 && i <= j;
        // }

        // // 下
        // function t2(i, j) {
        //     return i + j >= 8 && i >= j;
        // }

        // // 左
        // function t3(i, j) {
        //     return i + j <= 8 && i >= j;
        // }

        // // 右
        // function t4(i, j) {
        //     return i + j >= 8 && i <= j;
        // }

        // // 沙漏
        // function t5(i, j) {
        //     return (i + j >= 8 && i >= j) || (i + j <= 8 && i <= j);
        // }

        // fun(t1);
        // fun(t2);
        // fun(t3);
        // fun(t4);
        // fun(t5);







        // // 8.输入两个数，求两个数的最大公约数，最小公倍数
        // function fun(a, b) {
        //     let max_value = a > b ? a : b
        //     let min_value = a < b ? a : b
        //     while (true) {
        //         if (max_value % a == 0 && max_value % b == 0) {
        //             break
        //         }
        //         max_value++
        //     }
        //     while (true) {
        //         if (a % min_value == 0 && b % min_value == 0) {
        //             break
        //         }
        //         min_value--
        //     }

        //     return ["最小公倍：",max_value, "最大公因：", min_value]
        // }
        // let r=fun(150, 15)
        // console.log(r);













        // // 9.判定bcd是不是abcdefghijkl的子字符串
        // function fun(datas = "abcdefghijkl", values = "bcd") {
        //     for (let i = 0; i < datas.length - values.length + 1; i++) {
        //         if (datas[i] === values[0] && datas[i + 1] === values[1] && datas[i + 2] === values[2]) {
        //             return "是"
        //         }
        //     }
        //     return "不是"
        // }
        // let r = fun()
        // console.log(r);






        // function fun(datas, values) {
        //     // 如果主字符串长度小于子字符串长度，直接返回不是
        //     if (datas.length < values.length) {
        //         return "不是";
        //     }
        //     // 外层循环遍历主字符串
        //     for (let i = 0; i <= datas.length - values.length; i++) {
        //         let isMatch = true;
        //         // 内层循环逐个比较字符
        //         for (let j = 0; j < values.length; j++) {
        //             if (datas[i + j] !== values[j]) {
        //                 isMatch = false;
        //                 break;
        //             }
        //         }
        //         // 如果内层循环所有字符都匹配成功，返回是
        //         if (isMatch) {
        //             return "是";
        //         }
        //     }
        //     return "不是";
        // }
        // // 调用函数进行测试
        // let testData = "abcdefghijkl";
        // let testValue = "bcd";
        // let r = fun(testData, testValue);
        // console.log(r);










        // // 10.找到1000以内最大的10个质数
        // function fun() {
        //     let datas = []
        //     for (let i = 1000; i >= 2; i--) {
        //         let is_prime = true
        //         for (let j = 2; j < i; j++) {
        //             if (i % j == 0) {
        //                 is_prime = false
        //                 break
        //             }
        //         }

        //         if (datas.length == 10) {
        //             break
        //         }

        //         if (is_prime) {
        //             datas.push(i)
        //         }
        //     }
        //     return datas
        // }
        // let r = fun()
        // console.log(r);









        // // 11.随机生成5-10之间的数字，直到所有数字之和大于100，计算随机次数
        // function fun() {
        //     let count = 0
        //     let total = 0
        //     while (true) {
        //         let data = Math.floor(Math.random() * (10 - 5 + 1)) + 5
        //         count++
        //         total += data
        //         if (total > 100) {
        //             break
        //         }
        //     }
        //     return ["次数：", count, "总和：", total]
        // }
        // let r = fun()
        // console.log(r);







        // // 12.连续输入10个数字， 打印输入数字最大值与最小值的差
        // function fun() {
        //     let max_value = -Infinity
        //     let min_value = Infinity
        //     for (let i = 0; i < 10; i++) {
        //         let input = parseInt(prompt(`输入第${i + 1}个数`))
        //         if (max_value < input) {
        //             max_value = input
        //         }
        //         if (min_value > input) {
        //             min_value = input
        //         }
        //     }
        //     return max_value - min_value
        // }
        // let r = fun()
        // console.log(r);







        // // 13.随机10个数字放入列表，找到列表中最大值与最小值的差
        // function fun() {
        //     let datas = []
        //     let max_value = -Infinity
        //     let min_value = Infinity
        //     for (let i = 0; i < 10; i++) {
        //         let num = Math.floor(Math.random() * (100 - 10 + 1)) + 10
        //         datas.push(num)
        //         if (max_value < num) {
        //             max_value = num
        //         }
        //         if (min_value > num) {
        //             min_value = num
        //         }
        //         if (datas.length == 10) {
        //             break
        //         }
        //     }
        //     return max_value - min_value
        // }
        // let r = fun()
        // console.log(r);







        // // 14.重复输入数字，如果连续输入两次素数则退出程序，否则继续输入
        // function fun() {
        //     let count = 0
        //     while (true) {
        //         let i = 2
        //         let is_prime = true
        //         let input = parseInt(prompt("输入数字"))
        //         while (i < input) {
        //             if (input % i == 0) {
        //                 is_prime = false
        //                 break
        //             }
        //             i++
        //         }
        //         if (is_prime) {
        //             count++
        //         }
        //         else {
        //             count = 0
        //         }
        //         if (count == 2) {
        //             break
        //         }
        //     }
        // }
        // fun()



    </script>
</body>

</html>